﻿<?php
	session_start(); // 开启session
	// 跨域设置
	header("Access-Control-Allow-Origin:http://localhost:8080");
	header("Access-Control-Allow-Methods:GET,POST");
	header("Access-Control-Allow-Headers:Origin,X-Requested-With,Content-Type,Accept,token");

	header("Content-Type: text/html;charset=utf-8");// 文档编码
	date_default_timezone_set("Asia/Shanghai");// 设置时区
	define("CMS_DIR", dirname(__FILE__) . '/');// 定义系统物理路径
	
	require(CMS_DIR . "lib/util.php");// 公用函数库
	
	// 跨域设置
	if(strtoupper($_SERVER["REQUEST_METHOD"]) == 'OPTIONS'){
		returnAjaxJson(200, "跨域设置", null);
		exit; 
	}

	require(CMS_DIR . "lib/session.php");// session类
	require(CMS_DIR . "config/database.php"); // 数据库信息
	require(CMS_DIR . "lib/mysql.php");// 连接数据库类
	require(CMS_DIR . "lib/login.php");// 登录类

	// 初始化session类
	$session = new Session();

	// 初始化登录类
	$login = Login::newClass();

	// 初始化数据库连接类
	$pdo=array($databaseInfo['dbms'] . ":host=" . $databaseInfo['host'] . ";dbname=" . $databaseInfo['dbName'] . ";charset=utf8",$databaseInfo['user'],$databaseInfo['password']);
	//开始连接数据库
	$db = Mysql::newClass();
	$db->pdoConnect($pdo);

	// 判断url参数是否有误
	if(array_key_exists("model", $_GET) && array_key_exists("action", $_GET)){
		$model = $_GET["model"];
		$action = $_GET["action"];
		$jsonData = json_decode(file_get_contents("php://input"));
		$controllerClass = CMS_DIR . "/controller/" . $model . ".php";
		$modelClass = CMS_DIR . "/model/" . $model . ".class.php";

		// 判断是否进入登录接口
		$login->loginIn($model, $action, $jsonData);
		// 判断是否登录
		$login->isLogin();
		// 判断是否进入退出登录接口
		$login->loginOut($model, $action);

		// 判断功能模块是否开发
		if(file_exists($controllerClass) && file_exists($modelClass)){
			// 路由到对应功能模块
			include($controllerClass);
			$model = ucfirst($model);
			$controller = new $model();
			// 判断该功能是否存在
			if(method_exists($controller, $action)){
				// 验证是否拥有该操作的权限
				$userType = $session->get("userType");
				$permission = strtolower("/" . $model . "/" . $action . "/");
				if($userType && ($permission != "/admin/getmenu/")){
					isPermission($model, $action);
				}

				$controller->$action($jsonData);
			} else {
				returnAjaxJson(404, "功能模块未开发！", null);
			}
		} else{
			returnAjaxJson(404, "功能模块未开发！", null);
		}
	} else {
		returnAjaxJson(404, "url地址参数有误！", null);
	}
?>